package com.meatball.authorization.service

import com.meatball.authorization.data.dto.CreateRoleParams
import com.meatball.authorization.data.dto.UpdateRoleParams
import com.meatball.authorization.data.entity.RoleEntity
import java.util.*

/**
 * TODO 角色管理接口层
 *
 * @author 张翔宇
 * @since 2024年3月26日
 */
interface RoleService {
    /**
     * TODO 保存角色
     *
     * @param role 角色信息
     */
    fun create(role: CreateRoleParams)

    /**
     * TODO 获取所有角色
     *
     * @return
     */
    fun readAll(): Iterable<RoleEntity>

    /**
     * TODO 查询所有的角色信息
     *
     * @return 放入字符串集合
     */
    fun findAllRoles(): List<String>

    /**
     * TODO 根据ID查询角色信息
     *
     * @param id 主键
     */
    fun readById(id: Long): Optional<RoleEntity>

    /**
     * TODO 修改角色信息
     *
     * @param role 参数
     */
    fun update(id: Long, role: UpdateRoleParams)

    /**
     * TODO 删除角色信息
     *
     * @param id 主键
     */
    fun delete(id: Long)
}